package com.unbox.rabbit;

import com.unbox.common.configuration.exception.UnboxGlobalExceptionHandler;
import com.unbox.common.configuration.fegin.UnboxRequestAttributeHystrixConcurrencyStrategy;
import com.unbox.common.configuration.message.UnBoxMessageLocaleAutoConfiguration;
import com.unbox.common.configuration.mybatisplus.UnBoxMyBatisPlusAutoConfiguration;
import com.unbox.common.configuration.mybatisplus.seata.UnBoxSeataAutoConfiguration;
import com.unbox.common.configuration.oauth2.UnBoxResourceServerConfigurerAdapter;
import com.unbox.common.configuration.redisson.UnBoxRedissonAutoConfiguration;
import com.unbox.common.configuration.sentinel.UnBoxSentinelAutoConfiguration;
import com.unbox.common.swagger.UnboxSwagger3Configuration;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Import;

@SpringBootApplication
@MapperScan(value = "com.unbox.rabbit.mapper")
@Import(value = {
        UnBoxRedissonAutoConfiguration.class,  // 装配redisson配置
        UnBoxSentinelAutoConfiguration.class, // 装配Sentinel配置
        UnBoxSeataAutoConfiguration.class, // 引入Seata分布式事务配置
        UnBoxMessageLocaleAutoConfiguration.class, // 装配国际化 配置
        UnboxSwagger3Configuration.class,   // 加载api接口文档配置
        UnboxGlobalExceptionHandler.class, // 引入全局异常处理
        UnBoxResourceServerConfigurerAdapter.class, // 加载oauth2配置
        UnboxRequestAttributeHystrixConcurrencyStrategy.class, // 加载oauth2配
})
public class RabbitApplication {
    public static void main(String[] args) {
        SpringApplication.run(RabbitApplication.class, args);
    }
}
